/**
 * @returns {Boolean} valid value
 *
 * @properties={typeid:24,uuid:"A8EAC890-94E8-4C5B-820D-2D5569FC1F77"}
 */
function tot_valores()
{
	if ((op_cabecera_to_op_detalle.importe==null) || (op_cabecera_to_op_detalle.importe==0))
	{
		globals.DIALOGS.showWarningDialog('Aviso',"Debe ingresar Importe",'OK')
		return false;
	}
	else
	{
	globals.gtotal_valores=0
	for ( var i = 1 ; i <= op_cabecera_to_op_detalle.getSize(); i++ )
	{
		op_cabecera_to_op_detalle.setSelectedIndex(i)
		globals.gtotal_valores+= op_cabecera_to_op_detalle.importe
	}
	globals.opago_diferencia(1);
	return true;
	}
}

/**
 * @returns {Boolean} valid value
 *
 * @properties={typeid:24,uuid:"6D17A08D-93EF-4746-AB8F-97AB3ACECA19"}
 */
function valor_elegido() 
{
	globals.gcuentas_variable=0  //  0=cuentas caja
	elements.importe.enabled=true;
	elements.cuenta_cyb_id.enabled=true;
	elements.cheque_nro.enabled=true;
	elements.fecha_emision_chq.enabled=true;
	elements.fecha_pago.enabled=false;
	elements.dias_pago.enabled=false;
	elements.boton_cheque.enabled=false;
	
	if (op_detalle_to_valores.es_cheque==1) 
	{ // es cheque  
		elements.importe.requestFocus(true)
		if (op_detalle_to_valores.es_propio != 1)
		{
			// da alta de cheque que no se le dio al proveedor  en otro form
			globals.formEnVentana('opago_dev_1_chq','cheques_dev','Datos Cheque')

			elements.cheque_nro.enabled			= true;
			elements.fecha_emision_chq.enabled	= true;
			elements.boton_cheque.enabled		= true;
		}
	}
	else		
	{ // es efectivo    ->  pedir importe y cta
		if (op_detalle_to_valores.usa_cta_bco==1)  // 2013 NO PUEDE SER  transferencia
		{
			globals.DIALOGS.showWarningDialog('Aviso',"Transferencia no se puede usar en devolución de proveedor",'OK')
			return false; 
		}
		// poner foco en importe
		elements.importe.requestFocus(true)
   		// no permitir ingresar los otros campos

		elements.cheque_nro.enabled=false;
		elements.fecha_emision_chq.enabled=false; 
		elements.boton_cheque.enabled=false;
	}
	return true
}

/**
 *
 * @properties={typeid:24,uuid:"601582AE-51D6-4AAE-8256-6A77E0D6AE95"}
 */
function validar_importe() 
{
	if ((op_cabecera_to_op_detalle.importe==null) || (op_cabecera_to_op_detalle.importe==0))
	{
		globals.DIALOGS.showWarningDialog('Aviso',"Debe ingresar Importe",'OK')
		elements.importe.requestFocus(true)
		return false;
	}
	return true
}

/**
 * @returns {Boolean} valid value
 *
 * @properties={typeid:24,uuid:"4151A12C-4F7B-4832-8EB0-186D24AA3A4B"}
 */
function onDataChange_fecha_emision() 
{
	if (op_detalle_to_valores.es_cheque == 1)
	{
		elements.fecha_pago.enabled = true;
		if (op_detalle_to_valores.es_ch_difer != 1)
		{// no es diferido
			fecha_pago = fecha_emision_chq
			elements.fecha_pago.enabled = false;
		}
		else
		{ // es diferido
			calcula_fecha_pago(); 
		}
	}
	return true
}

/**
 *
 * @properties={typeid:24,uuid:"B443A9EA-96B3-447D-9BD9-4ECFA9DF77A2"}
 */
function prepara_renglon() 
{
if(op_cabecera_to_op_detalle.getSize()!=0 && op_cabecera_to_op_detalle.getSize()!=null)
{
	if (op_cabecera_to_op_detalle.op_detalle_marcado!=1)
	{ // "devuelve" cheque que no se le dio -> debe ingresar
		elements.valor_id.enabled=true;
		elements.importe.enabled=true;
		elements.cuenta_cyb_id.enabled=true;
		elements.cheque_nro.enabled=true;
		elements.fecha_emision_chq.enabled=true;
		elements.fecha_pago.enabled=true;
		elements.dias_pago.enabled=true; 
		elements.boton_cheque.enabled=true;
		
		globals.gcuentas_variable=0
		if (op_detalle_to_valores)  // no es alta
		{	
			if (op_detalle_to_valores.es_cheque==1)
			{ // es cheque    habilita ingreso de todos los campos
				elements.valor_id.enabled=false;
				elements.importe.enabled=true;
				elements.cuenta_cyb_id.enabled=true;
				elements.cheque_nro.enabled=true;
				elements.fecha_emision_chq.enabled=true;
				elements.fecha_pago.enabled=true;
				elements.dias_pago.enabled=true;
				elements.boton_cheque.enabled=true;
			}
			else		
			{// es efectivo   pedir solo importe y cta
				cheque_nro=null;
				fecha_emision_chq=null
				fecha_pago=null
				elements.valor_id.enabled=false;
				elements.importe.enabled=true;
				elements.cuenta_cyb_id.enabled=true; 
				elements.cheque_nro.enabled=false;
				elements.fecha_emision_chq.enabled=false;
				elements.fecha_pago.enabled=false;
				elements.dias_pago.enabled=false;
				elements.boton_cheque.enabled=false;
			}	
		}
	}
	else
	{ // devuelve cheque que se le dio  NO PUEDE VARIAR ningun dato
		elements.valor_id.enabled=false;
		elements.importe.enabled=false;
		elements.cuenta_cyb_id.enabled=false;
		elements.cheque_nro.enabled=false;
		elements.fecha_emision_chq.enabled=false;
		elements.fecha_pago.enabled=false;
		elements.dias_pago.enabled=false;
		elements.boton_cheque.enabled=false;
	}
}
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean} valid value
 *
 * @properties={typeid:24,uuid:"EFA1358E-DC96-4EBF-8C20-611374FD211F"}
 */
function valor_elegido_2(oldValue, newValue, event) 
{
	if(event.getType()==JSEvent.DATACHANGE)
		prepara_renglon();
	else
	{
		if(valor_id != null)
			prepara_renglon();
	}
	   
	return true;
}

/**
 * Handle record selected.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"42A9AC20-6B07-45D6-80C5-B3EB5623198E"}
 */
function onRecordSelected_detalle(event) 
{
	if(valor_id != null)
		prepara_renglon();
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean} valid value
 *
 * @properties={typeid:24,uuid:"B4F3A010-517A-4299-A8AF-A176344304BA"}
 */
function banco_propio(oldValue, newValue, event) 
{
	var estado=ver_saldo();
	if (estado==true)
	{
	if (op_detalle_to_valores.es_cheque==1)
	{
		banco_sucursal=op_detalle_to_cuentas_cyb.descripcion;  // 21/07/2010  nueva relacion
		if(op_detalle_to_valores.es_propio== 1)
		{
		//para cheque propio poner banco_id de tabla cuentas_cyb en el detalle // 16/07/2010
		banco_id=op_detalle_to_cuentas_cyb.banco_id; // 21/07/2010  se creó la relacion
		}
	}
	return true;       //28/07/2010
	}                  //28/07/2010
	else               //28/07/2010
	{                  //28/07/2010
		return false;  //28/07/2010
	}
}

/**
 *
 * @properties={typeid:24,uuid:"06F99C04-426E-4F74-995C-DD65F2BC2984"}
 * @AllowToRunInFind
 */
function ver_saldo() 
{
	// solo buscar saldo de caja cuando es efectivo // 20/07/2010
	if(op_cabecera_to_op_detalle.op_detalle_to_valores.usa_cta_bco==1) // 20/07/2010 es transferencia
			return true;
	if (op_cabecera_to_op_detalle.op_detalle_to_valores.es_cheque==1) // 20/07/2010 es  cheque
			return true;    
	
// es efectivo: debe chequear saldo    
	/** @type {JSFoundSet<db:/infocom/saldos_caja>}*/
	var fs_saldos=databaseManager.getFoundSet(databaseManager.getDataSourceServerName(controller.getDataSource()),'saldos_caja')
	var estado=fs_saldos.find()
	if (estado==true)
	{
	fs_saldos.cuentas_cyb_id	= cuentas_cyb_id;
	fs_saldos.moneda_id 		= globals.zparam_moneda_default
	var found=fs_saldos.search();
	if (found==1)  
	{ // ver saldo existente 
		fs_saldos.setSelectedIndex(1);
    	if (importe>fs_saldos.saldo_efectivo)
    	{ // importe supera lo existente en caja
    		globals.DIALOGS.showWarningDialog('Aviso','Efectivo a pagar de $' + importe + ' supera el saldo de la caja $' + fs_saldos.saldo_efectivo,'OK')
			return false;
    	}
    	else
    		return true;
    }
    else
	{
    	return false;
	}
	}
	else
	{
		return false;
	}    
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"8AE6FCC7-0DE3-440B-B54A-F24963A56C9A"}
 */
function onDataChange_importe(oldValue, newValue, event) 
{	
	if (cuentas_cyb_id == null)
	{
		var estado = tot_valores();
		if (estado == false)
			return false;
		else
		{
			elements.cuenta_cyb_id.requestFocus(true);
			return true;
		}
	}
	else
	{
		var estado = tot_valores();
		if (estado == false)
		{
			elements.importe.requestFocus(true);
			return false;
		}
	}
	return true
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"509FEDFE-6AEC-4F6A-B95E-D1041BAFB767"}
 */
function onDataChange_cheque_nro(oldValue, newValue, event)
{
	if (op_detalle_to_valores.es_cheque == 1) 
	{ // es cheque  
		if (op_detalle_to_valores.es_propio == 1) // es propio
		{
			globals.duplicacion_cheques(valor_id,banco_id,cheque_nro)
			if (globals.gfilas != 0)  // si es cero, la factura no existe
			{ // ya existe , lo rechaza
				globals.DIALOGS.showWarningDialog('Aviso','Ya existe ' + op_detalle_to_valores.valor_descripcion + ' nro. ' + cheque_nro + ' de banco ' + op_detalle_to_cuentas_cyb.descripcion,'OK')
				return false;
			}
			if (op_detalle_to_valores.es_ch_difer == 1)
			{
				elements.fecha_pago.requestFocus();
			}
			else  // cheque propio no deferido poner fecha_emision=fecha_pago 
			{
				fecha_pago = application.getServerTimeStamp()
				elements.fecha_pago.enabled = false;
			}
		}
	}
	return true
}

/**
 * Handle focus element loosing focus.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"764A811C-B63E-4EEB-B9AA-9221FC3F0EC5"}
 */
function onFocusLost_fecha_pago(event) 
{
	if (op_detalle_to_valores.es_cheque == 1) 
	{ // es cheque  
		if (op_detalle_to_valores.es_ch_difer == 1)
		{
			if(dias_pago == null) 
			{
				elements.dias_pago.requestFocus(); 
				return true
			}
			if(fecha_pago == null)
				elements.fecha_pago.requestFocus();
		}
	}
	return true
}

/**
 * Handle changed data.
 *
 * @param {Object} [oldValue] old value
 * @param {Object} [newValue] new value
 * @param {JSEvent} [event] the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"D4C96CC9-16FF-4FD5-ADFA-12024D9209C3"}
 */
function calcula_fecha_pago(oldValue, newValue, event) 
{
	if(op_detalle_to_valores.es_cheque == 1  && op_detalle_to_valores.es_ch_difer == 1 ) //es cheque  y diferido 
	{
		if (dias_pago != null)
		{		
			fecha_pago = fecha_emision_chq; 
			fecha_pago = fecha_pago.setDate (fecha_emision_chq.getDate() + dias_pago);//  calcular a partir de la fecha de emision
		}
	}
	return true
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"3BA9FBA5-1C1E-49CD-812A-963159CB1334"}
 */
function onAction_ir_a_cheque(event) 
{
	if (op_detalle_to_valores.es_cheque==1)
	{
		globals.formEnVentana('opago_dev_1_chq','cheques_dev','Datos Cheque')
	}
}
